﻿using System.Collections.Generic;

using Kaiser.Configuration;
using Kaiser.Infrastructure.Modules;
 

namespace Kaiser.Infrastructure
{
    public interface IModuleRegistry
    {
        IModule Load(KaiserConfigurationSection config, ModuleConfigurationElement module);
        IEnumerable<IModule> GetModules();
        IEnumerable<T> GetModules<T>() where T : IModule;
        void UnloadModules();
        void RegisterRoutes();
        IAuthenticationModule GetAuthenticationModule( string currentModuleName);

    }
}
